/*******************************************************
> Copyright (C) 2024 ==IOT== All rights reserved.
> File Name: mylib.c
> Author: lv1
> Website:www.lv1.org
> Created Time: 2024年07月31日 星期三 18时07分50秒
***************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
// 实现 strcpy 函数：将 src 字符串复制到 dest 字符串
char *my_strcpy(char *dest, const char *src) {
    char *dest_ptr = dest;  // 保存 dest 的起始地址
    while ((*dest_ptr++ = *src++) != '\0');  // 逐字符复制 src 到 dest，直到遇到 '\0'
    return dest;  // 返回 dest 的起始地址
}

// 实现 strcat 函数：将 src 字符串追加到 dest 字符串末尾
char *my_strcat(char *dest, const char *src) {
    char *dest_ptr = dest;  // 保存 dest 的起始地址
    // 找到 dest 字符串的末尾
    while (*dest_ptr != '\0') {
        dest_ptr++;  // 移动 dest_ptr 指向 dest 的末尾
    }
    // 将 src 逐字符追加到 dest 的末尾
    while ((*dest_ptr++ = *src++) != '\0');
    return dest;  // 返回 dest 的起始地址
}

// 实现 strlen 函数：计算字符串 str 的长度
size_t my_strlen(const char *str) {
    const char *str_ptr = str;  // 保存 str 的起始地址
    // 移动 str_ptr 直到遇到 '\0'
    while (*str_ptr != '\0') {
        str_ptr++;
    }
    return str_ptr - str;  // 返回 str_ptr 与 str 的差值，即字符串的长度
}
